package com.qinggeng.project.system.mapper;

import java.util.List;

import com.qinggeng.project.api.dto.MessageListDto;
import com.qinggeng.project.system.domain.UserMessage;
import org.apache.ibatis.annotations.Update;

/**
 * 消息列Mapper接口
 *
 * @author qinggeng
 * @date 2020-06-30
 */
public interface UserMessageMapper
{
    /**
     * 查询消息列
     *
     * @param messageId 消息列ID
     * @return 消息列
     */
    public UserMessage selectUserMessageById(Long messageId);

    /**
     * 查询消息列列表
     *
     * @param userMessage 消息列
     * @return 消息列集合
     */
    public List<UserMessage> selectUserMessageList(UserMessage userMessage);

    /**
     * 新增消息列
     *
     * @param userMessage 消息列
     * @return 结果
     */
    public int insertUserMessage(UserMessage userMessage);

    /**
     * 修改消息列
     *
     * @param userMessage 消息列
     * @return 结果
     */
    public int updateUserMessage(UserMessage userMessage);

    /**
     * 删除消息列
     *
     * @param messageId 消息列ID
     * @return 结果
     */
    public int deleteUserMessageById(Long messageId);

    /**
     * 批量删除消息列
     *
     * @param messageIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserMessageByIds(Long[] messageIds);

    List<UserMessage> selectUserMessageMemberList(UserMessage where);

    List<MessageListDto> listMessageListDto(UserMessage where);

    int selectUserMessageCount(UserMessage messageWhere);

    UserMessage selectFirstUserMessage(Long userId);

    int selectUserMessageByIdAndStatus(Long fkId);

    /**
     * 将查询出来的消息未读状态更新为已读
     * @param where
     * @return
     */
    int updateUserMessageRead(UserMessage where);
}
